package cn.jtfadmin.core.modules.sys.domain.dto;


import cn.jtfadmin.base.filesystem.annos.File;
import cn.jtfadmin.base.lang.enums.FileType;
import cn.jtfadmin.core.constant.SysUserConstants;
import cn.jtfadmin.core.enums.SexEnum;
import cn.jtfadmin.core.enums.UserStatusEnum;
import lombok.Data;

import javax.validation.constraints.Email;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.time.LocalDate;

/**
 * 系统用户新增参数
 */
@Data
public class SysUserAddPDTO implements Serializable {

    /**
     * 登录账号
     */
    @NotBlank
    @Size(max = 200, min = 1)
    protected String username;
    /**
     * 真实姓名
     */
    @Size(max = 100, min = 1)
    protected String realname;
    /**
     * 头像
     */
    @File(dirName = SysUserConstants.SYS_USER_AVATAR_FILE_TYPE, fileType = FileType.IMAGE)
    @Size(max = 255)
    protected String headimg;
    /**
     * 生日
     */
    protected LocalDate birthday;
    /**
     * 性别
     */
    protected SexEnum sex;
    /**
     * 电子邮件
     */
    @Email
    @Size(max = 50)
    protected String email;
    /**
     * 电话
     */
    @Size(max = 20)
    protected String phone;
    /**
     * 状态 NORMAL:正常, FROZEN:冻结
     */
    @NotNull
    protected UserStatusEnum status;
    /**
     * 用户角色 ids
     */
    protected String roleListIds;


    /**
     * 部门 id
     */
    protected String sysDepartId;


    /**
     * 负责部门id
     */
    protected String leaderDepartsIds;


}
